package com.base.controller;

import com.base.po.voip.GoodsClassify;
import com.base.service.GoodsClassifyService;
import com.base.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 商品分类管理服务端
 *
 * @author f
 */
@Controller
@RequestMapping("/admin")
public class Index_goodsClassify {

    @Autowired
    private GoodsClassifyService goodsClassifyService; // 商品分类信息

    /**
     * 商品分类首页
     *
     * @param request       参数
     * @param currentPageNo 当前页
     * @return ModelAndView
     * @throws Exception
     */
    @RequestMapping("/goodsClassifyIndex")
    public ModelAndView goodsClassifyIndex(HttpServletRequest request, Integer currentPageNo) throws Exception {
        String userid = (String) request.getSession().getAttribute("adminUserId"); // 登录的用户ID
        if (userid == null) return new ModelAndView("jsp/loginCheck"); // 未登录
        Map<String, Object> map = new HashMap<>(); // 存储数据对象
        // 设置分页 获取内容
        Page page = new Page(); // 实例化分页
        page.setCurrentPageNo(currentPageNo); // 设置当前页
        page.setRecordTotal(goodsClassifyService.countByOptAll(userid, 1, null)); // 设置总条数
        List<GoodsClassify> goodsClassify = goodsClassifyService.selectByOptAll(page, userid, 1, null); // 分类内容集合
        map.put("goodsClassify", goodsClassify); // 对象
        map.put("pages", page); // 分页
        return new ModelAndView("jsp/index_GoodsClassify", map);
    }

    /**
     * 二级商品分类首页
     *
     * @param request       参数
     * @param currentPageNo 当前页
     * @return ModelAndView
     * @throws Exception
     */
    @RequestMapping("/goodsClassify2Index")
    public ModelAndView goodsClassify2Index(HttpServletRequest request, Integer currentPageNo, String gid) throws Exception {
        String userid = (String) request.getSession().getAttribute("adminUserId"); // 登录的用户ID
        if (userid == null) return new ModelAndView("jsp/loginCheck"); // 未登录
        Map<String, Object> map = new HashMap<>(); // 存储数据对象
        // 设置分页 获取内容
        Page page = new Page(); // 实例化分页
        page.setCurrentPageNo(currentPageNo); // 设置当前页
        page.setRecordTotal(goodsClassifyService.countByOptAll(userid, 2, gid)); // 设置总条数
        List<GoodsClassify> goodsClassify = goodsClassifyService.selectByOptAll(page, userid, 2, gid); // 分类内容集合
        map.put("goodsClassify", goodsClassify); // 对象
        try {
            map.put("gname", goodsClassifyService.selectByPrimaryKey(gid).getText()); // 一级名称
        } catch (Exception e) {
            map.put("gname", "获取异常"); // 一级名称
        }
        map.put("gid", gid); // 一级id
        map.put("pages", page); // 分页
        return new ModelAndView("jsp/index_GoodsClassify2", map);
    }

    // 跳转添加分类信息
    @RequestMapping("/addGoodsClassify")
    public ModelAndView addGoodsClassify(Integer type, String gid) throws Exception {
        Map<String, Object> map = new HashMap<>(); // 存储数据对象
        if (type == 2 && gid != null && !gid.isEmpty()) {
            map.put("gid", gid);
        }
        map.put("type", type);
        return new ModelAndView("jsp/add_GoodsClassify", map);
    }

    // 跳转修改分类信息
    @RequestMapping("/updateGoodsClassify")
    public ModelAndView updateGoodsClassify(String id, Integer currentPageNo, Integer type, String gid) throws Exception {
        Map<String, Object> map = new HashMap<>(); // 存储数据对象
        if (type == 2 && gid != null && !gid.isEmpty()) {
            map.put("gid", gid);
        }
        map.put("type", type);
        map.put("goodsClassify", goodsClassifyService.selectByPrimaryKey(id)); // 对象
        map.put("currentPageNo", currentPageNo); // 当前页
        return new ModelAndView("jsp/update_GoodsClassify", map);
    }
}
